unit uInNomineSkills;

interface

uses
  SysUtils,
  uInNomineSystem;

function GetAllSkills: TSkills;

implementation

function GetAllSkills: TSkills;
var
  i: integer;
begin
  for i := 0 to NUMBER_OF_SKILLS - 1 do
    Result[i] := TSkill.Create;

  Result[0].description := SKILLS_NAMES[0]; // acrobatics
  Result[0].attributes := [agility];
  Result[0].defaultPenalty := -3;
  Result[0].needsSpecification := False;

  Result[1].description := SKILLS_NAMES[1]; // artistry
  Result[1].attributes := [perception];
  Result[1].defaultPenalty := -2;
  Result[1].needsSpecification := False;

  Result[2].description := SKILLS_NAMES[2]; // chemistry
  Result[2].attributes := [intelligence];
  Result[2].defaultPenalty := -5;
  Result[2].needsSpecification := False;

  Result[3].description := SKILLS_NAMES[3]; // climbing
  Result[3].attributes := [agility];
  Result[3].defaultPenalty := -2;
  Result[3].needsSpecification := False;

  Result[4].description := SKILLS_NAMES[4]; // computer operation
  Result[4].attributes := [intelligence];
  Result[4].defaultPenalty := -4;
  Result[4].needsSpecification := False;

  Result[5].description := SKILLS_NAMES[5]; // detect lies
  Result[5].attributes := [perception];
  Result[5].defaultPenalty := -2;
  Result[5].needsSpecification := False;

  Result[6].description := SKILLS_NAMES[6]; // dodge
  Result[6].attributes := [agility];
  Result[6].defaultPenalty := -1;
  Result[6].needsSpecification := False;

  Result[7].description := SKILLS_NAMES[7]; // driving
  Result[7].attributes := [perception];
  Result[7].defaultPenalty := -2;
  Result[7].needsSpecification := True;

  Result[8].description := SKILLS_NAMES[8]; // eletronics
  Result[8].attributes := [intelligence, precision];
  Result[8].defaultPenalty := -5;
  Result[8].needsSpecification := False;

  Result[9].description := SKILLS_NAMES[9]; //emote
  Result[9].attributes := [perception];
  Result[9].defaultPenalty := -1;
  Result[9].needsSpecification := False;

  Result[10].description := SKILLS_NAMES[10]; // engineering
  Result[10].attributes := [precision];
  Result[10].defaultPenalty := -4;
  Result[10].needsSpecification := False;

  Result[11].description := SKILLS_NAMES[11]; // escape
  Result[11].attributes := [agility, precision];
  Result[11].defaultPenalty := -3;
  Result[11].needsSpecification := False;

  Result[12].description := SKILLS_NAMES[12]; // fast-talk
  Result[12].attributes := [will];
  Result[12].defaultPenalty := -1;
  Result[12].needsSpecification := False;

  Result[13].description := SKILLS_NAMES[13]; // fighting
  Result[13].attributes := [strength, will];
  Result[13].defaultPenalty := -1;
  Result[13].needsSpecification := True;

  Result[14].description := SKILLS_NAMES[14]; // knowledge
  Result[14].attributes := [intelligence];
  Result[14].defaultPenalty := -4;
  Result[14].needsSpecification := True;

  Result[15].description := SKILLS_NAMES[15]; // languages
  Result[15].attributes := [intelligence];
  Result[15].defaultPenalty := -4;
  Result[15].needsSpecification := True;

  Result[16].description := SKILLS_NAMES[16]; // large weapon
  Result[16].attributes := [strength];
  Result[16].defaultPenalty := -3;
  Result[16].needsSpecification := True;

  Result[17].description := SKILLS_NAMES[17]; // lockpicking
  Result[17].attributes := [precision];
  Result[17].defaultPenalty := -3;
  Result[17].needsSpecification := False;

  Result[18].description := SKILLS_NAMES[18]; // lying
  Result[18].attributes := [intelligence, perception];
  Result[18].defaultPenalty := -2;
  Result[18].needsSpecification := False;

  Result[19].description := SKILLS_NAMES[19]; // medicine
  Result[19].attributes := [precision];
  Result[19].defaultPenalty := -4;
  Result[19].needsSpecification := False;

  Result[20].description := SKILLS_NAMES[20]; // move silently
  Result[20].attributes := [agility];
  Result[20].defaultPenalty := -1;
  Result[20].needsSpecification := False;

  Result[21].description := SKILLS_NAMES[21]; // ranged weapon
  Result[21].attributes := [precision];
  Result[21].defaultPenalty := -2;
  Result[21].needsSpecification := True;

  Result[22].description := SKILLS_NAMES[22]; // running
  Result[22].attributes := [strength, agility];
  Result[22].defaultPenalty := -1;
  Result[22].needsSpecification := False;

  Result[23].description := SKILLS_NAMES[23]; // savoir-faire
  Result[23].attributes := [intelligence, precision];
  Result[23].defaultPenalty := -4;
  Result[23].needsSpecification := False;

  Result[24].description := SKILLS_NAMES[24]; // seduction
  Result[24].attributes := [will];
  Result[24].defaultPenalty := -1;
  Result[24].needsSpecification := False;

  Result[25].description := SKILLS_NAMES[25]; // singing
  Result[25].attributes := [perception];
  Result[25].defaultPenalty := -2;
  Result[25].needsSpecification := False;

  Result[26].description := SKILLS_NAMES[26]; // small weapon
  Result[26].attributes := [precision];
  Result[26].defaultPenalty := -2;
  Result[26].needsSpecification := True;

  Result[27].description := SKILLS_NAMES[27]; // survival
  Result[27].attributes := [will, perception];
  Result[27].defaultPenalty := -4;
  Result[27].needsSpecification := True;

  Result[28].description := SKILLS_NAMES[28]; // swimming
  Result[28].attributes := [agility];
  Result[28].defaultPenalty := -2;
  Result[28].needsSpecification := False;

  Result[29].description := SKILLS_NAMES[29]; // tactics
  Result[29].attributes := [intelligence];
  Result[29].defaultPenalty := -2;
  Result[29].needsSpecification := False;

  Result[30].description := SKILLS_NAMES[30]; // throwing
  Result[30].attributes := [agility, precision];
  Result[30].defaultPenalty := -3;
  Result[30].needsSpecification := False;

  Result[31].description := SKILLS_NAMES[31]; // tracking
  Result[31].attributes := [perception];
  Result[31].defaultPenalty := -2;
  Result[31].needsSpecification := False;
end;

end.
